/***2024-11-20 迷途小羔羊
 * 用于编写角色附加身上的特效
*/
namespace ghost
{
    export class RoleEffectFactory
    {
        /**给角色添加进度条         
         * @param r 角色         
         * @param param 附加参数，此处需要objID:物体id msg:气泡文字信息 time:维持时间, layer:层级
         * @param id 唯一id，可参考RoleEffectID常量，同id可以进行替换 
        */
         public static addEffectTo(r:AniRole, param:IRoleEffectParam, id:number):AniRole
         {   
            if(param.objID == null || param.msg === null)
            {
                r.removeRoleEffectById(id);
                return null;
            }
            let roleEff:RoleEffect = r.getRoleEffect(id);
            if(roleEff)
            {
                roleEff.setParam(param);
                return roleEff.effect;
            }                
            let e:RoleEffect;
            if(id == RoleEffectID.HPBAR)
                e = new BarEffect(id, r, param);
            // else if(id == RoleEffectID.BUBBLE)
            //     e = new BubbleEffect(id, r, param);
            // else if(id == RoleEffectID.NAME)
            //     e = new NameEffect(id, r, param);
            // else if(id == RoleEffectID.TIP)
            //     e = new TipEffect(id, r, param);
            // else if(id == RoleEffectID.TITLE)
            //     e = new TitleEffect(id, r, param);
            else
                e = new RoleEffect(id, r, param);
            r.addRoleEffect(e, false);
            return e.effect;
         }
    }
}